//#include <iostream>
//#include <cstring>
//#include <queue>
//using namespace std;
//
//const int N = 200010;
//typedef long long ll;
//typedef pair<ll, int> PLI;
//int n, m, s;
//ll e[N], ne[N], h[N], w[N], idx;
//bool st[N];
//int dist[N];
//void add(int a, int b, int c)
//{
//	e[idx] = b, w[idx] = c;
//	ne[idx] = h[a];
//	h[a] = idx;
//	idx ++;
//} 
//void Dijkstra()
//{
//	priority_queue<PLI, vector<PLI>, greater<PLI>> heap;
//	heap.push({0, s});
//	memset(dist, 0x3f, sizeof dist);
//	dist[s] = 0;
//	while(heap.size() > 0)
//	{
//		auto t = heap.top();
//		heap.pop();
//		int distance = t.first, ver = t.second;
//		if(st[ver]) continue; 
//		st[ver] = true;
//		for(int i = h[ver]; i != -1; i = ne[i])
//		{
//			int j = e[i];
//			if(dist[j] > distance + w[i])
//			{
//				dist[j] = distance + w[i];
//				heap.push({dist[j], j});
//			}
//		}
//	}
//	cout << 0; 
//	for(int i = 1; i <= n; i++)
//	{
//		if(i == s) continue;
//		cout << " " << dist[i];
//	}
//}
//int main()
//{
//	memset(h, -1, sizeof h);
//	cin >> n >> m >> s;
//	while(m--)
//	{
//		int a, b, c;
//		cin >> a >> b >> c;
//		add(a, b, c);
//	}
//	Dijkstra();
//	return 0;
//}




#include <iostream>
#include <vector>
using namespace std;
int n;
string ans = "1";
vector<int> A;
vector<int> C;
void Sto()
{
    A.clear();
    for (int i = ans.size() - 1; i >= 0; i--)
        A.push_back(ans[i] - '0');
    C.clear();
}
int Mod(int b)
{
    Sto();
    cout << "b:" << b << endl;
    int t = 0;
    for (int i = A.size() - 1; i >= 0; i--)
    {
        if (i >= 0) t = t * 10 + A[i];
        C.push_back(t / b);
        t %= b;
    }
    cout << "t:" << t << endl;
    return t;
}
void Mul(int b)
{
    Sto();
    cout << "b:" << b << endl;
    int t = 0;
    for (int i = 0; i < A.size() || t > 0; i++)
    {
        if (i < A.size()) t = A[i] * b + t;
        C.push_back(t % 10);
        t /= 10;
    }
    ans.clear();
    for (int i = C.size() - 1; i >= 0; i--) ans.push_back(C[i] + '0');
    cout << "ans:" << ans << endl;
}
int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
        if (Mod(i) != 0) Mul(i);
    cout << ans << endl;
    return 0;
}